package com.aivin.service;

import com.aivin.entity.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * * 业务接口:站在"使用者"角度设计接口
 * 三个方面:方法定义粒度,参数,返回类型(return 类型/异常)
 */
public interface UserService {

    /**
     * 查询所有的图片信息
     * @return
     */
//    public List<TbPic> getAllPic(int userId, int offset, int limit);

    /**
     * 分页查询 所有用户信息 。
     * @param offset
     * @param limit
     * @return
     */
    public List<TbUser> queryAllUserFy( int offset  , int limit) ;


    /***根据用户Id查询用户信息  。不再使用。请用 getUserInfoByUserIdV1 */
    @Deprecated
    public  TbUser getUserInfoByUserId(int userId);


    /***根据用户Id查询用户信息 . */
    public TbUserV1 getUserInfoByUserIdV1(int userId);


    public int getfollowdStateByUser(@PathVariable int followdUserId   , @PathVariable int userId  );
    public int addFollowdStateByUserId(@PathVariable FollowUserBean bean) ;

    public int  setFollowedStateByUserId(@PathVariable int userFollowedId   ,@PathVariable int userId  ,@PathVariable int followedState );

    /**用户是否存在*/
    public int  checkUserExist( @PathVariable String userName     );

    /**密码登陆*/
    public TbUserV1  loginByPwd(@PathVariable String userName   , @PathVariable String  userPwd  ) ;

    /**用户账号注册**/
    public String  regByPwd(@PathVariable TbUserV1 bean  );

    /**用户是否存在-第三方登录*/
    public int   checkUserExistByThird(@PathVariable String uuid  ,@PathVariable String platform) ;

//    /**用户账号注册-**/
//    public String  regByThird(@PathVariable TbUserV1 bean  );

    /**查询关注列表 - 用户*/
    public List<FollowUserBean>  getfollowdListByUserId( int userId   ,  int offset , int limit ) ;

    /**更新验证码  返回值=0 说明更新失败 **/
    public int  updataVtCodeAndTime( int userId ,String vtCode ,String reqTime );

    /**更新用户头像**/
    public  int  upDateUserImgUrl(    int userId , String imgUrl   ) ;

    /**更新用户密码*/
    public  int  upDateUserPwd(     int userId ,   String userPwd   ) ;

    /** 绑定、更新用户 电话号码*/
    public  int  bindOrUpDateUserTel(int userId, String userTel);

    /**更新用户昵称*/
    public  int  upDateUserNickeName(     int userId ,   String nickName   ) ;

}
